#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

//static和extern  关键字

//static 是静态的意思 
//可以修饰局部变量，全局变量和函数

//extern 是用来声明外部符号的

/*
作用域:限制代码的范围
局部变量的作用域是变量所在的局部范围
全局变量的作用域是整个工程

生命周期:变量在创建到变量的销毁之间的一个时间段
局部变量的生命周期是从进入作用域变量的创建，生命周期开始，出作用域生命周期结束
全局变量的生命周期是整个程序的生命周期

*/

//static修饰局部变量
//static修饰局部变量改变了变量的生命周期，生命周期改变的本质是改变了变量存储类型
//本来局部变量是存储在栈区的，static修饰后存储到静态区，存储在静态区的变量和全局变量一样
//但是static只是改变了生命周期，作用域没有变化


void test()
{
	static int a = 5;
	a++;
	printf("%d ", a);
}

int main()
{
	int i = 0;
	for (i = 0; i < 6; i++)
	{
		test();
	}

	return 0;
}

//extern --  声明外部符号
//用法: extern 类型 名称;
//extern int g_val;
//
//int main()
//{QWERT0-EDEEEEEE
//	printf("%d\n", g_val);
//}

//声明外部函数
extern int Add(int x, int y);

int main()
{
	int a = 10;
	int b = 20;
	int c = Add(a, b);

	printf("%d\n", c);
}